Presto একটি ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন হিসেবে বড় ডেটাসেটের উপর দ্রুত কোয়েরি এক্সিকিউশন সক্ষম করার জন্য Partitioning এবং Bucketing প্রযুক্তি ব্যবহার করতে পারে। এই দুটি কৌশল ডেটা প্রসেসিংয়ে পারফরমেন্স উন্নত করতে সাহায্য করে, বিশেষ করে যখন বিশাল পরিমাণে ডেটা ব্যবহৃত হয়।
Partitioning হল ডেটা স্টোরেজের একটি কৌশল, যেখানে ডেটা বিভিন্ন ভাগে (partitions) বিভক্ত করা হয়, যাতে একটি নির্দিষ্ট কলামের ভিত্তিতে ডেটা অনুসন্ধান দ্রুত হয়। এটি মূলত ডেটা অ্যাক্সেস দ্রুত করার জন্য ব্যবহৃত হয়, কারণ প্রক্রিয়াকৃত ডেটার প্রতিটি ভাগ আলাদা আলাদা স্টোরেজে রাখা হয়, এবং Presto শুধু প্রয়োজনীয় পার্টিশনেই কোয়েরি করে।
sales
টেবিলের ডেটাকে date
কলামের ভিত্তিতে পার্টিশন করতে পারেন, যাতে শুধুমাত্র নির্দিষ্ট মাস বা বছরের ডেটার উপর কোয়েরি চালানো যায়।Hive এবং Presto তে date
কলামের ভিত্তিতে sales
টেবিলকে পার্টিশন করা:
CREATE TABLE sales (
id INT,
product_id INT,
amount DOUBLE
)
PARTITIONED BY (date STRING)
WITH (
format = 'ORC'
);
এখানে, sales
টেবিলের ডেটা date
কলামের ভিত্তিতে পার্টিশন করা হবে।
Bucketing হল একটি ডেটা বিভাজন কৌশল যা ডেটাকে নির্দিষ্ট সংখ্যক ফাইলে ভাগ করে, যাতে প্রতিটি বালতিতে একটি নির্দিষ্ট সংখ্যা বা সীমিত পরিমাণ ডেটা থাকে। এটি সাধারণত hashing বা round-robin ভিত্তিতে কাজ করে।
user_id
বা order_id
) এর উপর ভিত্তি করে ডেটা ভাগ করা হয়। Hashing ফাংশন ব্যবহার করে, প্রতিটি ডেটার জন্য একটি নির্দিষ্ট বালতিতে (bucket) ডেটা রাখা হয়।Hive বা Presto তে user_id
কলামের ভিত্তিতে sales
টেবিলকে ৫টি বালতিতে ভাগ করা:
CREATE TABLE sales (
id INT,
product_id INT,
amount DOUBLE
)
CLUSTERED BY (user_id) INTO 5 BUCKETS
WITH (
format = 'ORC'
);
এখানে, user_id
কলামের ভিত্তিতে ডেটা ৫টি বালতিতে ভাগ করা হয়েছে।
পার্থক্য | Partitioning | Bucketing |
---|---|---|
বিভাগ | ডেটা ভাগ করা হয় নির্দিষ্ট কলাম (যেমন date) দিয়ে। | ডেটা ভাগ করা হয় hashing বা round-robin এর মাধ্যমে। |
উদ্দেশ্য | ডেটা পারফরম্যান্স বৃদ্ধি করা। | স্কেলেবল কোয়েরি এক্সিকিউশন এবং দ্রুত জয়েন অপারেশন। |
ডেটা অ্যাক্সেস | নির্দিষ্ট পার্টিশন থেকে ডেটা আনা হয়। | সমান আকারের buckets এ ডেটা বিভক্ত করা হয়। |
কনফিগারেশন | PARTITIONED BY ব্যবহৃত হয়। | CLUSTERED BY INTO N BUCKETS ব্যবহৃত হয়। |
common.read_more